package com.atguigu.java.ai.langchain4j;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;

/**
 * @Author:Simple
 * @Date: 2025/8/29 15:53
 * @Description:
 **/
// 不具备隔离性      chatMemory = "chatMemory"
@AiService(
        wiringMode = EXPLICIT,
        chatModel = "qwenChatModel",
        chatMemoryProvider ="chatConfigStore"
)
public interface Assistant {
    String chat(String chatMessage);
    //重载一个chat方法 注意多参数要写注解 否则找不到
    String chat(@MemoryId Long memoryId,@UserMessage String chatMessage);
    //系统提示 扫描文件读取
//    @SystemMessage("你是我的好朋友，请用东北话回答问题，回答问题的时候适当添加表情符号。")
    @SystemMessage(fromResource = "my-template.txt")
    String systemChat(@MemoryId Long memoryId,@UserMessage String chatMessage);
    @UserMessage("你是我的好朋友，请用上海话回答问题，并且添加一些表情符号。 {{message}}")
    String userChat(@MemoryId Long memoryId,@V("message") String message);
    //配置文件里引用参数
    @SystemMessage(fromResource = "my-template.txt")
    String systemChat(@MemoryId Long memoryId,@UserMessage("userMessage")String userMessage,
                      @V("name") String name,@V("age") int age);

}
